Make setting the root cursor work again
authorMatthias Clasen <mclasen@redhat.com>
Tue, 11 Aug 2009 18:19:35 +0000 (14:19 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 11 Aug 2009 18:19:35 +0000 (14:19 -0400)
This used to work, and CSW broke it. Bug 591462, 589844.

gdk/gdkwindow.c

index 0b8b84b2ec27c9a16e061b8badd7fe70bec77371..90ebfc5f0837031aae30ee366dfdd6b7c938f137 100644 (file)
@@ -7108,7 +7108,10 @@ gdk_window_set_cursor (GdkWindow *window,
       if (cursor)
        private->cursor = gdk_cursor_ref (cursor);
 
-      if (_gdk_window_event_parent_of (window, display->pointer_info.window_under_pointer))
+      if (private->window_type == GDK_WINDOW_ROOT ||
+          private->window_type == GDK_WINDOW_FOREIGN)
+        GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_cursor (window, cursor);
+      else if (_gdk_window_event_parent_of (window, display->pointer_info.window_under_pointer))
        update_cursor (display);
 
       g_object_notify (G_OBJECT (window), "cursor");